package cn.tedu.File;

import java.io.File;

/**
 * Date：2022年01月
 * Author：程Sir
 * Name： JavaSE-API
 * Content:
 * // 1. 创建目录：D:\\a\b\c\d\e\f， 删除a目录！
 *
 * // 2. 获取目录 D:\\所有内容，只输出：.号开头的文件对象
 */
public class FileDemo6 {
    public static void main(String[] args) {
        // 创建指定的目录对象：D:\\a\b\c\d\e\f
        File file = new File("D:\\a\\b\\c\\d\\e\\aaa.txt");
        // 判断指定的目录是否创建
        if (!file.exists()){// 如果指定的目录不存在，创建
            System.out.println("是否创建成功："+file.mkdirs());
        }
        file = new File("D:\\a");
        deleteFiles(file);
    }

    /**
     * 使用递归的方式进行目录的删除
     * @param file 指定的目录
     */
    private static void deleteFiles(File file) {
        if (file.isDirectory()){
            // 遍历指定目录
            File[] files = file.listFiles();
            for (File file1 : files){
                /* 递归指程序在应用过程中调用自身的方法。
                    递归的调用:
                    1.递归的层数不宜过多，开销很大，效率偏低
                    2.递归得有出口。【程序中的出口就是通过分支来控制的】
                 */
                deleteFiles(file1);
            }
        }
        file.delete();
    }

    // 作业： 求 6的阶乘【使用递归完成！】


}
